﻿namespace Microsoft.VisualStudio.IDE.ToolboxControlsInstaller
{
    using MS.Internal.Package;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Reflection;
    using System.Windows;

    internal class WPFAssembly : XamlAssembly
    {
        private static List<string> _exclusionList = new List<string>();
        private const string DefaultTargetFramework = ".NETFramework,Version=v4.0";
        private const string XamlCommon = "XAML Common";
        private const string XamlControls = "XAML Controls";

        public WPFAssembly(AssemblyName assemblyName) : base(assemblyName)
        {
        }

        protected override DictionaryControl CreateControl(string fullTypeName, IDictionary toolProperties)
        {
            return new WPFControl(fullTypeName, toolProperties);
        }

        protected override int ClipFormat
        {
            get
            {
                return ToolEncoder.ClipboardFormat;
            }
        }

        protected override string DefaultFramework
        {
            get
            {
                return ".NETFramework,Version=v4.0";
            }
        }

        protected override List<string> ExclusionList
        {
            get
            {
                return _exclusionList;
            }
        }

        protected override AssemblyName FrameworkElementAssemblySpec
        {
            get
            {
                return typeof(FrameworkElement).Assembly.GetName();
            }
        }

        public override string Identifier
        {
            get
            {
                return StaticIdentifier;
            }
        }

        protected override string InvariantAllItemsCategory
        {
            get
            {
                return "XAML Controls";
            }
        }

        protected override string InvariantCommonCategory
        {
            get
            {
                return "XAML Common";
            }
        }

        public static string StaticIdentifier
        {
            get
            {
                return "WPF";
            }
        }
    }
}

